/*
CommandLineParser.h
Class assigned for parsing command line arguments into different classes.
*/


#ifndef COMMAND_LINE_PARSER_H

#define COMMAND_LINE_PARSER_H


#include <string>
#include <map>
#include <set>
#include <vector>

class CommandLineParser {

private:
	std::map<std::string, std::string> map;
	std::set<std::string> options;
	std::vector<std::string> args;

public:
	void parseToken(const std::string s);
	void parse(const char* str);
	void parse(int argc, const char** argv);
	void clear();
	
	std::map<std::string, std::string>& getMap();
	std::set<std::string>& getOptions();
	std::vector<std::string>& getArguments();
};

#endif
